The present invention relates to software for assisting users, and, more particularly, to a system and method for interactively assisting a user operating an application program.
The rapid rate of development and proliferation of software throughout work, business transactions, and society have required a high degree of learning and absorption by users to properly operate and gain the advantage of such software. However, as more and more features are integrated into application software, the complexity and shear volume of diverse features can be overwhelming, even for experienced computer users. In addition, interfaces for applications have increased the possibility of confusion to the users in attempting to provide application operators with more choices for improved productivity. For example, stacked dialog boxes and a multitude of taskbars, icons, commands, and options have given users the opportunity to be more productive, but the very same increase in operational options has decreased the ability of a user to learn and thoroughly understand such application software.
Since software and application programs are being dynamically improved and distributed, the learning environment for a user is constantly and rapidly changing. Accordingly, a need exists for development tools and assistance software which guide a user through such complex and changing software environments.
In addition, computer applications typically provide exceedingly repetitive and uniform interfaces which, for example, confuse users by having icons appearing similar when having different functions in different applications. A need exists for an interface and/or an assistance system and method for guiding a user through different applications to properly use any given application despite similar application interfaces and commands.
Developments in accessing data for timely delivery have increased with more networking between computing environments, such as the Internet. World Wide Web (WWW) browsers and search engines as well as self-service and automation such as Internet-traversing bots and push technology have increased the productivity of users. However, such network-based environments also suffer from the indicated interface complexity issues.
Separate from application developers, third-party or remote software developers have developed assistance systems which aid users to use application programs with greater ease and productivity, for example, to quickly access the typically 5% of an application program most commonly used by typical users. Such assistance systems may be capable of working with the application program without accessing the internal operation of the application program code itself. Thus, separate assistance systems may enhance productivity and reduce the complexity of the underlying host application program.
However, in the prior art, such assistance systems are limited to generating help panes and dialog boxes, which occupy space on a display, which is relatively “valuable” from an interface-based perspective. For example, U.S. Pat. No. 5,825,356 describes a help system with semi-transparent windows for disabling controls, with the help system disabling buttons and interface screen icons and generating a static balloon to highlight portions of the interface. However, such highlighting balloons tend to clutter the displayed interface, and so are not effective in assisting users.
In addition, help or assistance systems and methods for software applications generally do not use overlays for display on the same interface screen as the software application, and do not have multimedia operations, so such prior art systems are not effective in assisting users. Furthermore, known help systems are pre-coded using, for example, script languages to handle predetermined commands and user actions, and so are statically fixed and incapable of run-time path determination to interactively assist a user to learn an application program. Such script languages also prevent third-party developers from rapidly creating new or improved production tools as the underlying application program is changed. Moreover, help systems are primarily created for single user operation, and so are not typically networked or network-compatibly for collaborative or real-time shared use by many users learning or using a common application program.